package com.errol.generic.file.core.pojo;

import java.io.File;
import java.time.LocalDate;
import java.time.temporal.IsoFields;

/**
 * Created by Errol1017 on 2018/6/5.
 * 更新频率
 *
 * @author zhang xiao bin
 * @version v1.0
 * @date 2020/10/21
 * @since v4.7.6
 */
public enum Frequency {

    /**
     * 本地文件存储的二级目录的更新频率
     */
    DAILY,
    WEEKLY,
    MONTHLY,;

    /**
     * 依据 当前时间 和 当前时间 获取 Filepath 下二级目录的 路径
     *
     * @return filepath 二级目录 路径（只有二级目录）
     */
    public String getSecondaryFolderPathOfFilepath() {
        return getSecondaryFolderPathOfFilepath(LocalDate.now());
    }

    /**
     * 依据 LocalDate 获取 Filepath 下二级目录的 路径
     *
     * @param localDate 依据的日期
     * @return filepath 二级目录 路径（只有二级目录）
     */
    public String getSecondaryFolderPathOfFilepath(LocalDate localDate) {
        switch (this) {
            case DAILY:
                return localDate.toString() + File.separator;
            case WEEKLY:
                return localDate.get(IsoFields.WEEK_BASED_YEAR) + "-" + localDate.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR) + File.separator;
            case MONTHLY:
                return localDate.getYear() + "-" + localDate.getMonthValue() + File.separator;
            default:
                return null;
        }
    }
}
